package leetcode.editor.cn;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashSet;

/**
 * 题目Id：LCR 119
 * 题目：最长连续序列
 * 日期：2023-12-11 20:20:21
 */
//给定一个未排序的整数数组 nums ，找出数字连续的最长序列（不要求序列元素在原数组中连续）的长度。
//
//
//
// 示例 1：
//
//
//输入：nums = [100,4,200,1,3,2]
//输出：4
//解释：最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。
//
// 示例 2：
//
//
//输入：nums = [0,3,7,2,5,8,4,6,0,1]
//输出：9
//
//
//
//
// 提示：
//
//
// 0 <= nums.length <= 10⁴
// -10⁹ <= nums[i] <= 10⁹
//
//
//
//
// 进阶：可以设计并实现时间复杂度为 O(n) 的解决方案吗？
//
//
//
//
// 注意：本题与主站 128 题相同： https://leetcode-cn.com/problems/longest-consecutive-
//sequence/
//
// Related Topics 并查集 数组 哈希表 👍 81 👎 0


public class WhsWhI {
    public static void main(String[] args) {
        Solution solution = new WhsWhI().new Solution();
        int i = solution.longestConsecutive(new int[]{9, 1, 4, 7, 3, -1, 0, 5, 8, -1, 6});
        System.out.println(i);
        System.out.println("Hello world");
    }
    //leetcode submit region begin(Prohibit modification and deletion)

    /**
     *
     */
    class Solution {
        public int longestConsecutive(int[] nums) {
            if (nums == null || nums.length == 0) {
                return 0;
            }
            Arrays.sort(nums);
            int len = 1, maxlen = 1;
            for (int i = 1; i < nums.length; i++) {
                if (nums[i] - nums[i - 1] == 1) {
                    len++;
                } else {
                    maxlen = Math.max(maxlen, len);
                    len = 1;
                }
            }
            maxlen = Math.max(maxlen, len);
            return maxlen;


        }


    }
//leetcode submit region end(Prohibit modification and deletion)

}
